home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 94
/
094.d81
/
source.sda
/
BIG BOX SOURCE
< prev
next >
Wrap
Text File
|
2022-08-26
|
12KB
|
1,272 lines
open =$ffc0
readst =$ffb7
setlfs =$ffba
setnam =$ffbd
setmsg =$ff90
load =$ffd5
getin =$ffe4
input'buffer =512
clrchn =$ffcc
close =$ffc3 ;a
chrin =$ffcf
chkout =$ffc9 ;x
chkin =$ffc6 ;x
plot =$fff0
chrout =$ffd2
color'pointer =243
screen'line'pointer =209
print'number =$bdcd ;x,a
clear'line =59903
background =53281
border =53280
strout = $ab1e; .A low .Y high
unlisten =$ffae
clall =$ffe7
color1 =53282
color2 =53283
color3 =53284
white =5
crsr'down =17
rvs'on =18
home =19
del =20
red =28
crsr'right =29
green =30
blue =31
black =144
lowercase =14
uppercase =142
crsr'up =145
rvs'off =146
clr =147
insert =148
brown =149
light'red =150
dark'grey =151
medium'grey =152
light'green =153
light'blue =154
light'grey =155
purple =156
crsr'left =157
yellow =158
cyan =159
top'left =176
top'right =174
bottom'left =173
bottom'right =189
.org $c000
.obj "@0:big box c000"
;mem
jmp menu'entry
jmp box'entry ; +3
jmp screen'stash; +6
jmp screen'restore; +9
jmp linx; +12
jmp print'at; +15
jmp center; +18
jmp ucase; +21
jmp lcase; +24
jmp fcase; +27
jmp bload; +30
jmp rload; +33
jmp pfill; +36
jmp p2fill; +39
jmp brancher; +42
jmp bput; +45
jmp rbput; +48
jmp dir; +51
jmp doodle; +54
jmp reader; +57
jmp char'repeat; +60
;***sys addr,x,to x,y,to y,s-code,color
box'entry lda #0
sta temp
- jsr get'number
ldy temp
sta parms,y
inc temp
cpy #5
bne -
fill'box jsr linx
lda 214
pha
lda 211
pha
box'start ldx parms+2
ldy #0
clc
jsr $fff0
jsr old'rom'patch
dec parms
- ldy parms+1
- lda parms+4
cmp #255
beq +
sta (209),y
+ lda parms+5
sta (243),y
dey
cpy parms
bne -
lda 214
cmp parms+3
beq +
inc 214
jsr 58732
jsr old'rom'patch
jmp --
+ lda #home
jsr $ffd2
pla
sta 211
pla
sta 214
jmp 58732
linx ldy #24
- lda 217,y
ora #128
sta 217,y
dey
bpl -
rts
screen'stash sec
jsr plot
stx menuy
sty menux1
jsr get'number
sta 252
cmp >1024
bcs +
rts
+ clc
adc #4
sta 254
lda #0
sta 253
sta 251
lda #home
jsr chrout
jsr old'rom'patch
sei
lda #0
sta 1
ldx #3
ldy #0
- lda (209),y
sta (251),y
dec 1
lda (243),y
inc 1
sta (253),y
iny
bne -
inc 210
inc 252
inc 244
inc 254
dex
bpl -
dec 254
ldy #233
dec 1
lda 53280
inc 1
sta (253),y
iny
dec 1
lda 53281
inc 1
sta (253),y
iny
lda menuy
sta (253),y
iny
lda menux1
sta (253),y
lda #$77
sta 1
cli
ldy menux1
ldx menuy
clc
jmp plot
screen'restore jsr get'number
sta 252
clc
adc #4
sta 254
lda #0
sta 253
sta 251
lda #home
jsr chrout
jsr old'rom'patch
sei
lda #0
sta 1
ldx #3
ldy #0
- lda (251),y
sta (209),y
lda (253),y
dec 1
sta (243),y
inc 1
iny
bne -
inc 210
inc 252
inc 244
inc 254
dex
bpl -
dec 254
ldy #233
lda (253),y
dec 1
sta 53280
iny
inc 1
lda (253),y
dec 1
sta 53281
inc 1
iny
lda (253),y
sta 214
iny
lda (253),y
sta 211
lda #$77
sta 1
cli
jmp 58732
menu'entry lda #0
sta temp
sta flag
- jsr get'number
ldy temp
sta menuy,y
inc temp
cpy #6
bne -
menu jsr linx
ldx menuy
ldy #0
sty menu'current
clc
jsr plot
jsr old'rom'patch
lda menu'highlight
sta mcolor
jsr paint'line
menu'wait jsr getin
beq menu'wait
ldx menu'current
stx temp
cmp #crsr'down
beq menu'down
cmp #crsr'up
beq menu'up
cmp #13
beq menu'select
cmp exit'key
bne menu'wait'loop
dec flag
bmi menu'select
menu'wait'loop jmp menu'wait
menu'down inc menu'current
lda menu'current
cmp menu'items
bne highlight
lda #0
sta menu'current
jmp highlight
menu'up dec menu'current
lda menu'current
cmp #255
beq +
jmp highlight
+ ldy menu'items
dey
sty menu'current
jmp highlight
menu'select lda menu'current
clc
adc menuy
tax
ldy #0
jsr plot
jsr old'rom'patch
lda menu'text
sta mcolor
jsr paint'line
bit flag
bmi +
lda menu'current
clc
adc #49
sta 631
lda #1
sta 198
+ rts
highlight lda menuy
clc
adc menu'current
tax
ldy #0
clc
jsr plot
jsr old'rom'patch
lda menu'highlight
sta mcolor
jsr paint'line
lda menuy
clc
adc temp
tax
ldy #0
clc
jsr plot
jsr old'rom'patch
lda menu'text
sta mcolor
jsr paint'line
jmp menu'wait
paint'line ldy menux1
- lda mcolor
sta (243),y
bmi +
lda (209),y
eor #128
sta (209),y
+ iny
cpy menux2
beq -
bcc -
rts
;**** get number from BASIC ****
get'number jsr $aefd
jsr $ad8a
jsr $b7f7
lda $14 ; got low byte
rts
;***** get string from BASIC ****
get'string jsr $aefd
jsr $ad9e
jsr $b6a3
ldx $22
ldy $23
rts
print'at jsr linx
jsr get'number
sta 211
jsr get'number
sta 214
jsr 58732
jsr get'string
sta temp
print'string ldy #0
- lda ($22),y
jsr chrout
iny
cpy temp
bne -
rts
ucase jsr get'string
sta temp
ldy #0
- lda ($22),y
cmp #65
bcc +
ora #128
sta ($22),y
+ iny
cpy temp
bne -
rts
lcase jsr get'string
sta temp
ldy #0
- lda ($22),y
and #127
sta ($22),y
iny
cpy temp
bne -
rts
fcase lda #255
sta flag
jsr get'string
sta temp
ldy #0
lda ($22),y
cmp #65
bcc +
ora #128
sta ($22),y
+ iny
lda #0
sta flag
ldy #1
- lda ($22),y
and #127
sta ($22),y
cmp "."
bne +
dec flag
+ cmp "!"
bne +
dec flag
+ cmp "?"
bne +
dec flag
+ bit flag
bmi +
iny
cpy temp
bne -
rts
+ cmp #65
bcc +
ora #128
sta ($22),y
inc flag
+ iny
cpy temp
bne -
rts
center jsr get'number
tax
ldy #0
clc
jsr plot
jsr get'string
sta temp
lsr
sta flag
lda #20
sec
sbc flag
sta 211
jsr 58732
jmp print'string
bload jsr get'string
jsr setnam
jsr get'number
tax
lda #1
ldy #0
jsr setlfs
jsr get'number
ldx $14
ldy $15
lda #0
jmp load
rload jsr get'string
jsr setnam
jsr get'number
tax
lda #2
ldy #2
jsr setlfs
jsr open
jsr get'number
jsr clrchn
ldx #2
jsr chkin
ldy #0
- jsr getin
sei
ldx #$74
stx 1
sta ($14),y
inc $14
bne +
inc $15
+ ldx #$77
stx 1
cli
jsr readst
and #64
beq -
lda #2
jsr close
jmp clrchn
pfill lda #0
sta temp
- jsr get'number
ldy temp
sta parms,y
inc temp
cpy #7
bne -
pfill'box jsr linx
lda 214
pha
lda 211
pha
pbox'start lda #147
jsr chrout
jsr old'rom'patch
ldy #0
sty temp
- ldy #0
- lda parms
sta (209),y
lda parms+4
sta (243),y
iny
lda parms+1
sta (209),y
lda parms+5
sta (243),y
dey
jsr q3
iny
iny
cpy #39
bcc -
lda 214
cmp #22
bcs +
inc 214
inc 214
jsr 58732
jsr old'rom'patch
jmp --
+ jsr fix'bottom
pla
sta 211
pla
sta 214
jmp 58732
q3 lda 209
clc
adc #40
sta 251
lda #0
adc 210
sta 252
lda 243
clc
adc #40
sta 253
lda 244
adc #0
sta 254
lda parms+2
sta (251),y
lda parms+6
sta (253),y
iny
lda parms+3
sta (251),y
lda parms+7
sta (253),y
dey
rts
fix'bottom lda #22
sta 214
jsr 58732
jsr old'rom'patch
lda 209
clc
adc #80
sta 251
lda #0
adc 210
sta 252
lda 243
clc
adc #80
sta 253
lda #0
adc 244
sta 254
ldy #39
- lda (209),y
sta (251),y
lda (243),y
sta (253),y
dey
bpl -
rts
p2fill lda #0
sta temp
- jsr get'number
ldy temp
sta parms,y
inc temp
cpy #17
bne -
p2fill'box jsr linx
lda 214
pha
lda 211
pha
p2box'start lda #147
jsr chrout
jsr old'rom'patch
ldy #0
sty temp
- ldy #0
- lda parms
sta (209),y
lda parms+9
sta (243),y
iny
lda parms+1
sta (209),y
lda parms+10
sta (243),y
iny
lda parms+2
sta (209),y
lda parms+11
sta (243),y
dey
dey
jsr q4
iny
iny
iny
cpy #37
bcc -
lda 214
cmp #21
bcs +
inc 214
inc 214
inc 214
jsr 58732
jsr old'rom'patch
jmp --
+ jsr fix'side
pla
sta 211
pla
sta 214
jmp 58732
q4 lda 209
clc
adc #40
sta 251
lda #0
adc 210
sta 252
lda 243
clc
adc #40
sta 253
lda 244
adc #0
sta 254
lda parms+3
sta (251),y
lda parms+12
sta (253),y
iny
lda parms+4
sta (251),y
lda parms+13
sta (253),y
iny
lda parms+5
sta (251),y
lda parms+14
sta (253),y
dey
dey
lda 251
clc
adc #40
sta 251
lda #0
adc 252
sta 252
lda 253
clc
adc #40
sta 253
lda 254
adc #0
sta 254
lda parms+6
sta (251),y
lda parms+15
sta (253),y
iny
lda parms+7
sta (251),y
lda parms+16
sta (253),y
iny
lda parms+8
sta (251),y
lda parms+17
sta (253),y
dey
dey
rts
fix'side lda #19
jsr chrout
jsr old'rom'patch
- ldy #0
lda (209),y
tax
lda (243),y
ldy #39
sta (243),y
txa
sta (209),y
lda 214
cmp #24
beq +
inc 214
jsr 58732
jsr old'rom'patch
jmp -
+ lda #21
sta 214
jsr 58732
jsr old'rom'patch
lda 209
clc
adc #120
sta 251
lda #0
adc 210
sta 252
lda 243
clc
adc #120
sta 253
lda #0
adc 244
sta 254
ldy #39
- lda (209),y
sta (251),y
lda (243),y
sta (253),y
dey
bpl -
rts
brancher lda #0
sta flag
jsr get'string
sta temp
- jsr getin
beq -
ldy #0
- cmp ($22),y
bne +
iny
tya
clc
adc #48
sta 631
lda #9
sta 198
rts
+ iny
cpy temp
bne -
beq --
bput jsr get'strin